Gestão manual de memória por meio de new e delete cria um contrato frágil de "contrato de responsabilidade". O programador deve prever perfeitamente cada caminho de execução — incluindo retornos antecipados e exceções — para garantir que os recursos sejam liberados. Esse método é propenso a falhas sistêmicas.
As Falhas Sistêmicas
- A Armadilha da Vazamento de Memória: Em lógica complexa (if-else, switches), falhar em emparelhar cada
newcomdeletedegrada o desempenho do sistema com o tempo. - Invalidações de Ponteiros: Erros como Ponteiros Pendurados (acessar memória após exclusão) ou Liberações Duplas geram comportamento indefinido e vulnerabilidades de segurança.
- Segurança de Exceções: Se uma exceção ocorrer entre a alocação e a desalocação, o
deleteé ignorado completamente.
A Evolução
O C++11/14 modernizou o cabeçalho <memory> para afastar-se dos "ponteiros crus" em direção a modelos automatizados de propriedade que impõem segurança no nível do compilador.
TERMINALbash — 80x24
> Ready. Click "Run" to execute.
>